home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1995…tember: Reference Library / Dev.CD Sep 95 RL / Dev.CD Sep 95 RL.toast / mac / Technical Documentation / develop / develop Issue 6 code / TCP / NewsWatcher / NW Source / Source / menus.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-05-06  |  13.1 KB  |  578 lines  |  [TEXT/MMCC]

  1. #define kMBarID                128            /* resource id of MBAR rsrc */
  2. #define kEntireMenuMask        0x00000001    /* mask for enabling an entire menu */
  3.  
  4.  
  5.  
  6. /*    Apple menu. */
  7.  
  8. #define kAppleMenu                128
  9.  
  10. #define kAboutNewsWatcherItem    1
  11.  
  12. #define kAppleAllEnabled            0xfffffffb
  13. #define kAppleAllDisabled            0
  14. #define kAppleOnlyAboutDisabled        0xfffffff9
  15.  
  16.  
  17.  
  18. /*    File menu. */
  19.  
  20. #define kFileMenu                129
  21.  
  22. #define kNewGroupWindowItem            1
  23. #define kOpenItem                    2
  24. #define kCloseItem                    3
  25. #define kSaveItem                    5
  26. #define kSaveAsItem                    6
  27. #define kAppendItem                    7
  28. #define kPageSetupItem                9
  29. #define kPrintItem                    10
  30. #define kPreferencesItem            12
  31. #define kQuitItem                    14
  32.  
  33. #define kNumFileMenuItems            14
  34.  
  35. #define    kNewGroupWindowMask            (1L << kNewGroupWindowItem)
  36. #define kOpenMask                    (1L << kOpenItem)
  37. #define kCloseMask                    (1L << kCloseItem)
  38. #define kSaveMask                    (1L << kSaveItem)
  39. #define kSaveAsMask                    (1L << kSaveAsItem)
  40. #define kAppendMask                    (1L << kAppendItem)
  41. #define kPageSetupMask                (1L << kPageSetupItem)
  42. #define kPrintMask                    (1L << kPrintItem)
  43. #define kPreferencesMask            (1L << kPreferencesItem)
  44. #define kQuitMask                    (1L << kQuitItem)
  45.  
  46. #define kNoneFileEnabled ( \
  47.     kNewGroupWindowMask | \
  48.     kOpenMask | \
  49.     kPageSetupMask | \
  50.     kPreferencesMask | \
  51.     kQuitMask)
  52.     
  53. #define kDAFileEnabled ( \
  54.     kNewGroupWindowMask | \
  55.     kOpenMask | \
  56.     kPageSetupMask | \
  57.     kPreferencesMask | \
  58.     kQuitMask)
  59.     
  60. #define kGroupFileEnabled ( \
  61.     kNewGroupWindowMask | \
  62.     kOpenMask | \
  63.     kCloseMask | \
  64.     kPageSetupMask | \
  65.     kPreferencesMask | \
  66.     kQuitMask)
  67.     
  68. #define kNewGroupFileEnabled ( \
  69.     kNewGroupWindowMask | \
  70.     kOpenMask | \
  71.     kCloseMask | \
  72.     kPageSetupMask | \
  73.     kPreferencesMask | \
  74.     kQuitMask)
  75.         
  76. #define kUserGroupFileEnabled ( \
  77.     kNewGroupWindowMask | \
  78.     kOpenMask | \
  79.     kCloseMask | \
  80.     kSaveMask | \
  81.     kSaveAsMask | \
  82.     kPageSetupMask | \
  83.     kPreferencesMask | \
  84.     kQuitMask)
  85.     
  86. #define kSubjectFileEnabled ( \
  87.     kNewGroupWindowMask | \
  88.     kOpenMask | \
  89.     kCloseMask | \
  90.     kSaveMask | \
  91.     kSaveAsMask | \
  92.     kAppendMask | \
  93.     kPageSetupMask | \
  94.     kPrintMask | \
  95.     kPreferencesMask | \
  96.     kQuitMask)
  97.     
  98. #define kArticleFileEnabled ( \
  99.     kNewGroupWindowMask | \
  100.     kOpenMask | \
  101.     kCloseMask | \
  102.     kSaveMask | \
  103.     kSaveAsMask | \
  104.     kAppendMask | \
  105.     kPageSetupMask | \
  106.     kPrintMask | \
  107.     kPreferencesMask | \
  108.     kQuitMask)
  109.     
  110. #define kMessageFileEnabled ( \
  111.     kNewGroupWindowMask | \
  112.     kOpenMask | \
  113.     kCloseMask | \
  114.     kSaveMask | \
  115.     kSaveAsMask | \
  116.     kPageSetupMask | \
  117.     kPrintMask | \
  118.     kPreferencesMask | \
  119.     kQuitMask)
  120.     
  121. #define kTextFileEnabled ( \
  122.     kNewGroupWindowMask | \
  123.     kOpenMask | \
  124.     kCloseMask | \
  125.     kSaveMask | \
  126.     kSaveAsMask | \
  127.     kPageSetupMask | \
  128.     kPrintMask | \
  129.     kPreferencesMask | \
  130.     kQuitMask)
  131.     
  132. #define kHelpFileEnabled ( \
  133.     kNewGroupWindowMask | \
  134.     kOpenMask | \
  135.     kCloseMask | \
  136.     kSaveMask | \
  137.     kSaveAsMask | \
  138.     kPageSetupMask | \
  139.     kPrintMask | \
  140.     kPreferencesMask | \
  141.     kQuitMask)
  142.     
  143. #define kStartupBadFileEnabled ( \
  144.     kPageSetupMask | \
  145.     kPreferencesMask | \
  146.     kQuitMask)
  147.  
  148.  
  149.  
  150. /*    Edit menu. */
  151.  
  152. #define kEditMenu                130
  153.  
  154. #define kUndoItem                    1
  155. #define kCutItem                    3
  156. #define kCopyItem                    4
  157. #define kPasteItem                    5
  158. #define kPasteAsQuotationItem        6
  159. #define kClearItem                    7
  160. #define kSelectAllItem                8
  161. #define kDeselectAllItem            9
  162. #define kFindItem                    11
  163. #define kFindAgainItem                12
  164. #define kEnterSelectionItem            13
  165. #define kShowHideDetailsItem        15
  166. #define kRot13Item                    16
  167. #define kInsertSpoilerCharacterItem    17
  168. #define kWrapItem                    19
  169. #define kUnwrapItem                    20
  170.  
  171. #define kNumEditMenuItems        20
  172.  
  173. #define kUndoMask                    (1L << kUndoItem)
  174. #define kCutMask                    (1L << kCutItem)
  175. #define kCopyMask                    (1L << kCopyItem)
  176. #define kPasteMask                    (1L << kPasteItem)
  177. #define kPasteAsQuotationMask        (1L << kPasteAsQuotationItem)
  178. #define kClearMask                    (1L << kClearItem)
  179. #define kSelectAllMask                (1L << kSelectAllItem)
  180. #define kDeselectAllMask            (1L << kDeselectAllItem)
  181. #define kFindMask                    (1L << kFindItem)
  182. #define kFindAgainMask                (1L << kFindAgainItem)
  183. #define kEnterSelectionMask            (1L << kEnterSelectionItem)
  184. #define kShowHideDetailsMask        (1L << kShowHideDetailsItem)
  185. #define kRot13Mask                    (1L << kRot13Item)
  186. #define kInsertSpoilerCharacterMask    (1L << kInsertSpoilerCharacterItem)
  187. #define kWrapMask                    (1L << kWrapItem)
  188. #define kUnwrapMask                    (1L << kUnwrapItem)
  189.  
  190. #define kNoneEditEnabled        0
  191.  
  192. #define kEditOnlyCopyEnabled ( \
  193.     kCopyMask)
  194.  
  195. #define kDAEditEnabled ( \
  196.     kUndoMask | \
  197.     kCutMask | \
  198.     kCopyMask | \
  199.     kPasteMask | \
  200.     kClearMask)
  201.     
  202. #define kGroupEditEnabled ( \
  203.     kCopyMask | \
  204.     kSelectAllMask | \
  205.     kDeselectAllMask | \
  206.     kFindMask | \
  207.     kFindAgainMask )
  208.     
  209. #define kNewGroupEditEnabled ( \
  210.     kCopyMask | \
  211.     kSelectAllMask | \
  212.     kDeselectAllMask | \
  213.     kFindMask | \
  214.     kFindAgainMask)
  215.     
  216. #define kUserGroupEditEnabled ( \
  217.     kCutMask | \
  218.     kCopyMask | \
  219.     kPasteMask | \
  220.     kClearMask | \
  221.     kSelectAllMask | \
  222.     kDeselectAllMask | \
  223.     kFindMask | \
  224.     kFindAgainMask)
  225.     
  226. #define kSubjectEditEnabled ( \
  227.     kSelectAllMask | \
  228.     kDeselectAllMask | \
  229.     kFindMask | \
  230.     kFindAgainMask)
  231.     
  232. #define kArticleEditEnabled ( \
  233.     kCopyMask | \
  234.     kSelectAllMask | \
  235.     kFindMask | \
  236.     kFindAgainMask | \
  237.     kEnterSelectionMask | \
  238.     kShowHideDetailsMask | \
  239.     kRot13Mask)
  240.     
  241. #define kMessageEditEnabled ( \
  242.     kCutMask | \
  243.     kCopyMask | \
  244.     kPasteMask | \
  245.     kPasteAsQuotationMask | \
  246.     kClearMask | \
  247.     kSelectAllMask | \
  248.     kFindMask | \
  249.     kFindAgainMask | \
  250.     kEnterSelectionMask | \
  251.     kShowHideDetailsMask | \
  252.     kRot13Mask | \
  253.     kInsertSpoilerCharacterMask | \
  254.     kWrapMask | \
  255.     kUnwrapMask)
  256.     
  257. #define kTextEditEnabled ( \
  258.     kCopyMask | \
  259.     kSelectAllMask | \
  260.     kFindMask | \
  261.     kFindAgainMask | \
  262.     kEnterSelectionMask)
  263.     
  264. #define kHelpEditEnabled 0
  265.     
  266. #define kStartupBadEditEnabled    0
  267.  
  268.  
  269.  
  270. /*    News menu. */
  271.  
  272. #define kNewsMenu                131
  273.  
  274. #define kNextArticleItem            1
  275. #define kNextThreadItem                2
  276. #define kNextGroupItem                3
  277. #define kMarkReadItem                5
  278. #define kMarkUnreadItem                6
  279. #define kMarkOthersReadItem            7
  280. #define kNewMessageItem                9
  281. #define kReplyItem                    10
  282. #define kForwardItem                11
  283. #define kRedirectItem                12
  284. #define kSendMessageItem            13
  285. #define kCheckForNewArticlesItem    15
  286.  
  287. #define kNumNewsMenuItems        15
  288.  
  289. #define kNextArticleMask            (1L << kNextArticleItem)
  290. #define kNextThreadMask                (1L << kNextThreadItem)
  291. #define kNextGroupMask                (1L << kNextGroupItem)
  292. #define kMarkReadMask                (1L << kMarkReadItem)
  293. #define kMarkUnreadMask                (1L << kMarkUnreadItem)
  294. #define kMarkOthersReadMask            (1L << kMarkOthersReadItem)
  295. #define kNewMessageMask                (1L << kNewMessageItem)
  296. #define kReplyMask                    (1L << kReplyItem)
  297. #define kForwardMask                (1L << kForwardItem)
  298. #define kRedirectMask                (1L << kRedirectItem)
  299. #define kSendMessageMask            (1L << kSendMessageItem)
  300. #define kCheckForNewArticlesMask    (1L << kCheckForNewArticlesItem)
  301.  
  302. #define kNoneNewsEnabled ( \
  303.     kNewMessageMask)
  304.     
  305. #define kDANewsEnabled ( \
  306.     kNewMessageMask)
  307.     
  308. #define kGroupNewsEnabled ( \
  309.     kNextArticleMask | \
  310.     kNextThreadMask | \
  311.     kNextGroupMask | \
  312.     kNewMessageMask)
  313.     
  314. #define kNewGroupNewsEnabled ( \
  315.     kNextArticleMask | \
  316.     kNextThreadMask | \
  317.     kNextGroupMask | \
  318.     kNewMessageMask)
  319.     
  320. #define kUserGroupNewsEnabled ( \
  321.     kNextArticleMask | \
  322.     kNextThreadMask | \
  323.     kNextGroupMask | \
  324.     kMarkReadMask | \
  325.     kMarkUnreadMask | \
  326.     kNewMessageMask | \
  327.     kCheckForNewArticlesMask)
  328.     
  329. #define kSubjectNewsEnabled ( \
  330.     kNextArticleMask | \
  331.     kNextThreadMask | \
  332.     kNextGroupMask | \
  333.     kMarkReadMask | \
  334.     kMarkUnreadMask | \
  335.     kMarkOthersReadMask | \
  336.     kReplyMask | \
  337.     kForwardMask | \
  338.     kRedirectMask | \
  339.     kNewMessageMask)
  340.     
  341. #define kArticleNewsEnabled ( \
  342.     kNextArticleMask | \
  343.     kNextThreadMask | \
  344.     kNextGroupMask | \
  345.     kMarkReadMask | \
  346.     kMarkUnreadMask | \
  347.     kReplyMask | \
  348.     kForwardMask | \
  349.     kRedirectMask | \
  350.     kNewMessageMask)
  351.     
  352. #define kArticleNewsEnabledNoParent    ( \
  353.     kReplyMask | \
  354.     kForwardMask | \
  355.     kRedirectMask | \
  356.     kNewMessageMask)
  357.     
  358. #define kMessageNewsEnabled ( \
  359.     kNewMessageMask | \
  360.     kSendMessageMask)
  361.     
  362. #define kTextNewsEnabled ( \
  363.     kNewMessageMask)
  364.     
  365. #define kHelpNewsEnabled ( \
  366.     kNewMessageMask)
  367.     
  368. #define kStartupBadNewsEnabled    0
  369.  
  370.  
  371.  
  372. /*    Special menu. */
  373.  
  374. #define kSpecialMenu            132
  375.  
  376. #define kExtractBinariesItem            1
  377. #define kExtractBinariesManuallyItem    2
  378. #define kGetGroupListFromHostItem        4
  379. #define kSendGroupListToHostItem        5
  380. #define kOpenAllReferencesItem            7
  381. #define kSearchItem                        8
  382. #define kGetServerInfoItem                9
  383. #define kCancelArticleItem                10
  384. #define kOpenURLItem                    11
  385. #define kCheckForNewGroupsItem            13
  386. #define kCheckForDeletedGroupsItem        14
  387. #define kRebuildFullGroupListItem        15
  388. #define kSubscribeItem                    17
  389. #define kUnsubscribeItem                18
  390.  
  391. #define kNumSpecialMenuItems    18
  392.  
  393. #define kExtractBinariesMask            (1L << kExtractBinariesItem)
  394. #define kExtractBinariesManuallyMask    (1L << kExtractBinariesManuallyItem)
  395. #define kGetGroupListFromHostMask        (1L << kGetGroupListFromHostItem)
  396. #define kSendGroupListToHostMask        (1L << kSendGroupListToHostItem)
  397. #define kOpenAllReferencesMask            (1L << kOpenAllReferencesItem)
  398. #define kSearchMask                        (1L << kSearchItem)
  399. #define kGetServerInfoMask                (1L << kGetServerInfoItem)
  400. #define kCancelArticleMask                (1L << kCancelArticleItem)
  401. #define kOpenURLMask                    (1L << kOpenURLItem)
  402. #define kCheckForNewGroupsMask            (1L << kCheckForNewGroupsItem)
  403. #define kCheckForDeletedGroupsMask        (1L << kCheckForDeletedGroupsItem)
  404. #define kRebuildFullGroupListMask        (1L << kRebuildFullGroupListItem)
  405. #define kSubscribeMask                    (1L << kSubscribeItem)
  406. #define kUnsubscribeMask                (1L << kUnsubscribeItem)
  407.  
  408. #define kNoneSpecialEnabled    ( \
  409.     kGetGroupListFromHostMask | \
  410.     kGetServerInfoMask | \
  411.     kCheckForNewGroupsMask | \
  412.     kCheckForDeletedGroupsMask | \
  413.     kRebuildFullGroupListMask)
  414.  
  415. #define kDASpecialEnabled ( \
  416.     kGetGroupListFromHostMask | \
  417.     kGetServerInfoMask | \
  418.     kCheckForNewGroupsMask | \
  419.     kCheckForDeletedGroupsMask | \
  420.     kRebuildFullGroupListMask)
  421.     
  422. #define kGroupSpecialEnabled (\
  423.     kGetGroupListFromHostMask | \
  424.     kSearchMask | \
  425.     kGetServerInfoMask | \
  426.     kCheckForNewGroupsMask | \
  427.     kCheckForDeletedGroupsMask | \
  428.     kRebuildFullGroupListMask | \
  429.     kSubscribeMask)
  430.     
  431. #define kNewGroupSpecialEnabled    (\
  432.     kGetGroupListFromHostMask | \
  433.     kSearchMask | \
  434.     kGetServerInfoMask | \
  435.     kCheckForNewGroupsMask | \
  436.     kCheckForDeletedGroupsMask | \
  437.     kRebuildFullGroupListMask | \
  438.     kSubscribeMask)
  439.     
  440. #define kUserGroupSpecialEnabled (\
  441.     kGetGroupListFromHostMask | \
  442.     kSendGroupListToHostMask | \
  443.     kSearchMask | \
  444.     kGetServerInfoMask | \
  445.     kCheckForNewGroupsMask | \
  446.     kCheckForDeletedGroupsMask | \
  447.     kRebuildFullGroupListMask | \
  448.     kUnsubscribeMask)
  449.     
  450. #define kSubjectSpecialEnabled    (\
  451.     kExtractBinariesMask | \
  452.     kExtractBinariesManuallyMask | \
  453.     kGetGroupListFromHostMask | \
  454.     kSearchMask | \
  455.     kGetServerInfoMask | \
  456.     kCancelArticleMask | \
  457.     kCheckForNewGroupsMask | \
  458.     kCheckForDeletedGroupsMask | \
  459.     kRebuildFullGroupListMask)
  460.     
  461. #define kArticleSpecialEnabled    (\
  462.     kExtractBinariesMask | \
  463.     kGetGroupListFromHostMask | \
  464.     kOpenAllReferencesMask | \
  465.     kSearchMask | \
  466.     kGetServerInfoMask | \
  467.     kCancelArticleMask | \
  468.     kOpenURLMask | \
  469.     kCheckForNewGroupsMask | \
  470.     kCheckForDeletedGroupsMask | \
  471.     kRebuildFullGroupListMask)
  472.     
  473. #define kMessageSpecialEnabled (\
  474.     kGetGroupListFromHostMask | \
  475.     kGetServerInfoMask | \
  476.     kOpenURLMask | \
  477.     kCheckForNewGroupsMask | \
  478.     kCheckForDeletedGroupsMask | \
  479.     kRebuildFullGroupListMask)
  480.     
  481. #define kTextSpecialEnabled    (\
  482.     kGetGroupListFromHostMask | \
  483.     kGetServerInfoMask | \
  484.     kOpenURLMask | \
  485.     kCheckForNewGroupsMask | \
  486.     kCheckForDeletedGroupsMask | \
  487.     kRebuildFullGroupListMask)
  488.     
  489. #define kHelpSpecialEnabled    (\
  490.     kGetGroupListFromHostMask | \
  491.     kGetServerInfoMask | \
  492.     kCheckForNewGroupsMask | \
  493.     kCheckForDeletedGroupsMask | \
  494.     kRebuildFullGroupListMask)
  495.     
  496. #define kStartupBadSpecialEnabled    0
  497.  
  498.  
  499.  
  500. /*    Windows menu. */
  501.  
  502. #define kWindMenu                133
  503.  
  504. #define kCycleWindowsItem            1
  505. #define kZoomWindowItem                2
  506. #define kShowHideFullGroupListItem    4
  507. #define kFirstOpenWindItem            6
  508.  
  509. #define kNumWindMenuItems        4
  510.  
  511. #define kCycleWindowsMask            (1L << kCycleWindowsItem)
  512. #define kZoomWindowMask                (1L << kZoomWindowItem)
  513. #define kShowHideFullGroupListMask    (1L << kShowHideFullGroupListItem)
  514.  
  515. #define kNoneWindEnabled ( \
  516.     kShowHideFullGroupListMask)
  517.  
  518. #define kDAWindEnabled ( \
  519.     kShowHideFullGroupListMask)
  520.     
  521. #define kGroupWindEnabled ( \
  522.     kCycleWindowsMask | \
  523.     kZoomWindowMask | \
  524.     kShowHideFullGroupListMask)
  525.     
  526. #define kNewGroupWindEnabled ( \
  527.     kCycleWindowsMask | \
  528.     kZoomWindowMask | \
  529.     kShowHideFullGroupListMask)
  530.     
  531. #define kUserGroupWindEnabled ( \
  532.     kCycleWindowsMask | \
  533.     kZoomWindowMask | \
  534.     kShowHideFullGroupListMask)
  535.     
  536. #define kSubjectWindEnabled ( \
  537.     kCycleWindowsMask | \
  538.     kZoomWindowMask | \
  539.     kShowHideFullGroupListMask)
  540.     
  541. #define kArticleWindEnabled ( \
  542.     kCycleWindowsMask | \
  543.     kZoomWindowMask | \
  544.     kShowHideFullGroupListMask)
  545.     
  546. #define kMessageWindEnabled    ( \
  547.     kCycleWindowsMask | \
  548.     kZoomWindowMask | \
  549.     kShowHideFullGroupListMask)
  550.     
  551. #define kTextWindEnabled ( \
  552.     kCycleWindowsMask | \
  553.     kZoomWindowMask | \
  554.     kShowHideFullGroupListMask)
  555.     
  556. #define kHelpWindEnabled ( \
  557.     kCycleWindowsMask | \
  558.     kZoomWindowMask | \
  559.     kShowHideFullGroupListMask)
  560.     
  561. #define kStartupBadWindEnabled ( \
  562.     kCycleWindowsMask | \
  563.     kZoomWindowMask)
  564.  
  565.  
  566. void SetMenusTo (
  567.     unsigned long newAppleMenuState,
  568.     unsigned long newFileMenuState, 
  569.     unsigned long newEditMenuState,
  570.     unsigned long newNewsMenuState, 
  571.     unsigned long newSpecialMenuState, 
  572.     unsigned long newWindMenuState);
  573. void SetWindowsMenuShowHideFullGroupList (Boolean show);
  574. void SetEditMenuShowHideDetails (Boolean show);
  575. void AdjustExtractBinariesCommand (void);
  576. void AdjustCycleWindowsCommand (void);
  577. void AdjustMenuHelpBalloons (Boolean term);
  578.